lock based protocol